/**************************************************************************************************
* Title: OctreeNode.h
* Authors: Gael Huber
* Description: Contains data for a OctreeNode, including a link to a previous and next node, the data
*	it contains, and a halfwidth for the node
**************************************************************************************************/
#ifndef __OCTERENODE_H__
#define __OCTREENODE_H__

#include "SmurfsPolygon.h"
#include "SmurfsVector3.h"
#include <vector>

class OctreeNode {
public:
	OctreeNode(void);	// Constructor
	OctreeNode(std::vector<SmurfsPolygon*> polys);
	~OctreeNode(void);	// Destructor

	OctreeNode* child[8];	// 0 = near child, 1 = far child
	Vector3 center;		// Center point of the octree node
	Vector3 halfWidth;	// Half the width of the node volume
	std::vector<SmurfsPolygon*> polygons;	// Linked list of objects contained at this node
};

#endif